package com.np.shop.service.impl;

import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.np.shop.entity.TbSeller;
import com.np.shop.mapper.TbSellerMapper;
import com.np.shop.service.ITbSellerService;
import com.np.shop.utils.PageResult;
import org.springframework.stereotype.Service;

import javax.annotation.Resource;
import java.util.Map;

/**
 * <p>
 *  服务实现类
 * </p>
 *
 * @author 李高帅
 * @since 2020-11-26
 */
@Service
public class TbSellerServiceImpl extends ServiceImpl<TbSellerMapper, TbSeller> implements ITbSellerService {
    @Resource
    private TbSellerMapper tbSellerMapper;

    /**
     * 去做模糊
     * @param map
     * @return
     */
    public QueryWrapper<TbSeller> queryWrapper(Map map){
        //用提供的一种方法
        QueryWrapper<TbSeller> queryWrapper=new QueryWrapper<>();
        if (map !=null){
            //模糊公司名称
            if (map.get("name") !=null && !"".equals(map.get("name"))){
                //调取 方法 去判断
                queryWrapper.lambda().like(TbSeller::getName,"%"+map.get("name")+"%");
            }
            //模糊 店铺
            if (map.get("nickName") !=null && !"".equals(map.get("nickName"))){
                //调取 方法 去判断
                queryWrapper.lambda().like(TbSeller::getNickName,"%"+map.get("nickName")+"%");
            }
            if (map.get("status") !=null && !"".equals(map.get("status"))){
                //调取 方法 去判断
                queryWrapper.lambda().eq(TbSeller::getStatus,map.get("status"));
            }
        }
        return queryWrapper;
    }

    @Override
    public PageResult<TbSeller> selectList(Map map, Integer page, Integer size) {
        //这是mybatisplus 提供的一种封装方法
        QueryWrapper<TbSeller> queryWrapper=queryWrapper(map);
        //分页
        Page<TbSeller> page1=new Page<>(page,size);
        //分页的封装一种方法
        Page<TbSeller> tbSellerPage=tbSellerMapper.selectPage(page1,queryWrapper);
        //提供的一种分页 分总条数
        PageResult<TbSeller> pageResult=new PageResult<>(tbSellerPage.getTotal(),tbSellerPage.getRecords());
        return pageResult;
    }
}
